<?php
namespace App\Controller;
use Think\Controller;
use think\Rest;
class LoginController extends Controller {
    // 用户登录

    public function login()
    {
      //获取传过来的信息
        $data = G_DATA();
        //业务判断
        //通过账号密码登录
        $res = M('user') -> where('phone = %s', $data['phone']) -> find();
        if($res && md5($data['password']) == $res['password'])
        {
            //生成token
            $token = token();
            //生成过期时间
            $time = time()+3600*24*30;
            $updtoken['token'] = $token;
            $updtoken['endTime'] = $time;
            $tokenRes = M('user') -> where('id = %d', $res['id']) -> save($updtoken);
            if($tokenRes)
            {
                $res['token'] = $token;
                session(array('name'=>'user_info','expire'=>3600*24*30));
                session('user_info', $res);
                success($res);
            }else
            {
                error('E2000');
            }
        }else
        {
            error('E1015');
        }
        
    }

    //绑定手机号
    public function setPhone()
    {
        //获取传过来的信息
        $data = G_DATA();
        if(checkToken($data)=="false")
        {
            //参数不正确
            error('E1010');
            exit;
        }
        $phone['phone'] = $data['phone'];
        if($data['code'] == session('code'))
        {
            $res = M('user') -> where('id=%d',$id) -> save($phone);
            if($res)
            {
                error('E1004');
            }else
            {
                error('E1002');
            }
        }else
        {
            error('E1014');
        }
    }

    // 发送手机验证码
    public function sendSMS()
    {
        $photo = input('post.photo');
        $photo = '18722131123';
        $code = rand(100000,999999);
        session('code', $code, 'expire => 3600*5');
        $data = $this -> sendTemplateSMS($photo,array($code,'5'),"1");//手机号码，替换内容数组，模板ID
        // echo $data; // 1
        return $data;
    }
    //手机号登录
    public function phone()
    {
        //获取传过来的信息
        $data = G_DATA();
        if($data['code'] == session('code'))
        {
            $res = M('user') -> where('phone = %s', $data['phone']) -> find();
            if($res)
            {
                //生成token
                $token = token();
                //生成过期时间
                $time = time()+3600*24*30;
                $updtoken['token'] = $token;
                $updtoken['endTime'] = $time;
                $tokenRes = M('user') -> where('id = %d', $res['id']) -> save($updtoken);
                if($tokenRes)
                {
                    $res['token'] = $token;
                    $res['endToken'] = $time;
                    session(array('name'=>'user_info','expire'=>3600*24*30));
                    session('user_info', $res);
                    success($res);
                }else
                {
                    error('E2000');
                }
            }
        }else
        {
            error('E1014');
        }

    }

    //QQ登录

    //微信登录

    //微博登录


    
    public function sendTemplateSMS($to,$datas,$tempId)
    {
   
        //主帐号,对应开官网发者主账号下的 ACCOUNT SID
        $accountSid= '8aaf07085bad886c015bae05078f0033';

        //主帐号令牌,对应官网开发者主账号下的 AUTH TOKEN
        $accountToken= '021b6b5fad114c98a7ebdbd1971acf19';

        //应用Id，在官网应用列表中点击应用，对应应用详情中的APP ID
        //在开发调试的时候，可以使用官网自动为您分配的测试Demo的APP ID
        $appId='8aaf07085bad886c015bae0508220038';

        //请求地址
        //沙盒环境（用于应用开发调试）：sandboxapp.cloopen.com
        //生产环境（用户应用上线使用）：app.cloopen.com
        $serverIP='app.cloopen.com';
        // $serverIP='sandboxapp.cloopen.com';


        //请求端口，生产环境和沙盒环境一致
        $serverPort='8883';

        //REST版本号，在官网文档REST介绍中获得。
        $softVersion='2013-12-26';   



        /**
          * 发送模板短信
          * @param to 手机号码集合,用英文逗号分开
          * @param datas 内容数据 格式为数组 例如：array('Marry','Alon')，如不需替换请填 null
          * @param $tempId 模板Id,测试应用和未上线应用使用测试模板请填写1，正式应用上线后填写已申请审核通过的模板ID
          */ 
         

         // 初始化REST SDK
         // global $accountSid,$accountToken,$appId,$serverIP,$serverPort,$softVersion;
         $rest = new REST($serverIP,$serverPort,$softVersion);
         $rest->setAccount($accountSid,$accountToken);
         $rest->setAppId($appId);
        
         // 发送模板短信
         // echo "Sending TemplateSMS to $to <br/>";
         $result = $rest->sendTemplateSMS($to,$datas,$tempId);
         if($result == NULL ) {
             // echo "result error!";
             return 3;
             break;
         }
         if($result->statusCode!=0) {
             // echo "error code :" . $result->statusCode . "<br>";
             // echo "error msg :" . $result->statusMsg . "<br>";
             //TODO 添加错误处理逻辑
             return 0;
         }else{
             // echo "Sendind TemplateSMS success!<br/>";
             // 获取返回信息
             $smsmessage = $result->TemplateSMS;
           // echo  "dateCreated:".$smsmessage->dateCreated."<br/>";
           //  echo   "smsMessageSid:".$smsmessage->smsMessageSid."<br/>";
             //TODO 添加成功处理逻辑
             if($smsmessage)
             {
                return 1;
             }

         
         }
    }
}   